<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title></title>
  <!--引入Vue-->
  <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div class="root">
  <h1>人员列表</h1>
  <input v-model="keyword" type="text" placeholder="请输入姓名"/>
  <ul>
    <li v-for="(person,index) in filPersons" :key="person.id">
      {{ person.name }}-{{ person.age }}-{{index}}
    </li>
  </ul>
</div>
</body>

<script type="text/javascript">
  new Vue({
    el: '.root',
    data: {
      persons: [
        {id: '001',name: '马冬梅',age: 18,gender: '女'},
        {id: '002',name: '周冬雨',age: 14,gender: '女'},
        {id: '003',name: '周杰伦',age: 15,gender: '男'},
        {id: '004',name: '温兆伦',age: 15,gender: '男'},
      ],
      // filPersons: [],
      keyword: ''
    },
    methods:{},
    /**
     * watch方式实现
     */
    // watch:{
    //   keyword:{
    //     handler(val){
    //       this.filPersons = this.persons.filter((p)=>{
    //         //return后面跟过滤条件
    //         return p.name.indexOf(val) !== -1
    //       })
    //     },
    //     immediate: true
    //   }
    // },
    /**
     * computed方式实现
     */
    computed:{
      filPersons(){
        return this.persons.filter((p)=>{
          //return后面跟过滤条件
          return p.name.indexOf(this.keyword) !== -1
        })
      }
    }
  })
</script>
</html>
